export const getInputs = () => [
	[[1, 2, 0, 0], 34],
	[[2, 7, 4], 181],
	[[2, 1, 5], 806],
];

/**
 * **[989. 数组形式的整数加法](https://leetcode.cn/problems/add-to-array-form-of-integer/)**
 *
 * 整数的 **数组形式**  `num` 是按照从左到右的顺序表示其数字的数组。
 *
 * - 例如，对于 `num = 1321` ，数组形式是 `[1,3,2,1]` 。
 *
 * 给定 `num` ，整数的 **数组形式** ，和整数 `k` ，返回 整数 `num + k` 的 **数组形式** 。
 *
 * @param num
 * @param k
 * @returns
 */
export default function (num: number[], k: number): number[] {
	const result: number[] = [];

	let copiedK = k;

	let flag = false;
	const numLen = num.length;
	let index = 0;

	while (index < numLen || copiedK > 0) {
		const current = copiedK % 10;

		const item = current + (num[numLen - index - 1] || 0) + (flag ? 1 : 0);

		if (item > 9) {
			result.unshift(item - 10);
			flag = true;
		} else {
			result.unshift(item);
			flag = false;
		}

		index++;
		copiedK = (copiedK - current) / 10;
	}

	if (flag) result.unshift(1);

	return result;
}
